# -*-coding:utf-8-*-
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

plt.rcParams['font.sans-serif'] = ['KaiTi']  # 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示问题
plt.rcParams['axes.facecolor'] = '#EBEBEB'  # 设置全局图表背景颜色

name = ['谭火', '孙庄', '卢黄', '余钗', '程欢', '杨婵', '高媛', '廖婷', '熊虹', '席绢']
chinese = np.random.randint(20, 90, 10)
math = np.random.randint(20, 90, 10)
data = pd.DataFrame({'name': name, 'chinese': chinese, 'math': math})

plt.figure('Demo')  # 设置窗口标题
plt.plot(data.name, data.chinese, color='r', linestyle='-', marker='o', mfc='w')  # 语文分数折线图
plt.plot(data.name, data.math, color='g', linestyle='-', marker='o', mfc='w')  # 数学分数折线图
plt.xlabel('姓名', fontsize=14)  # x轴标题
plt.ylabel('分数', fontsize=14)  # y轴标题
plt.title('成绩折线图', fontsize=16)  # 图表标题
plt.xticks(range(10))  # x轴刻度
plt.ylim(0, 100)  # y轴坐标范围
plt.legend(('语文', '数学'))  # 图例
plt.grid(color='1', linestyle='-', linewidth=1)  # 图表网格线
for x, y1, y2 in zip(data.index, data.chinese, data.math):  # 数据点添加文本标签
    plt.text(x, y1+2, y1, ha='center')
    plt.text(x, y2+2, y2, ha='center')
plt.show()
